package com.znjc.device.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.znjc.device.domain.DeviceRuleRef;

import java.util.List;

/**
 * 设备绑定测点Service接口
 *
 * @author zengpc
 * @date 2023-12-04
 */
public interface IDeviceRuleRefService extends IService<DeviceRuleRef> {
    /**
     * 验证是否存在
     * @param ref
     * @return true 已存在 false 不存在
     */
    Boolean verify(DeviceRuleRef ref);

    /**
     * 根据设备id和解析规则id获取测点id
     * @param deviceId
     * @param ruleId
     * @return
     */
    Long getPointId(Long deviceId,Long ruleId);

    /**
     * 根据设备id获取设备下测点及对应解析规则集合
     * @param deviceId
     * @return
     */
    List<DeviceRuleRef> getListByDeviceId(Long deviceId);

    void deleteRefByDeviceId(Long deviceId);
    void deleteRefByPointId(Long pointId);
    void deleteRefByRuleId(Long ruleId);

    /**
     * 设备根据设备类型自动绑定测点及解析规则
     * @param typeId
     * @param deviceId
     */
    void autoBindingPointAndRule(Long typeId,Long deviceId);
}
